#pragma once


#include<stdio.h>
#include<stdlib.h>
#include<assert.h>


typedef int STNodeDataType;

typedef struct SLNode
{
	STNodeDataType data;
	struct SLNode* next;
	struct SLNode* prev;
}SLNode;

void SListInit(SLNode** pphead);
void Slistdestroy(SLNode** pphead);

SLNode* SListFind(SLNode* phead, STNodeDataType x);
void SListInsert(SLNode* pos, STNodeDataType x);
void SListErase(SLNode* pos);

SLNode* BuyNode(STNodeDataType x);

void SlistPrint(SLNode* phead);

void SListPushFront(SLNode* phead, STNodeDataType x);
void SListPushBack(SLNode* phead, STNodeDataType x);
void SlistPopFront(SLNode* phead);
void SlistPopBack(SLNode* phead);